﻿using BCCommon;
using BCDto.TMS.Order;
using BCDto.TMS.Order.Order;
using BCDto.TMS.OrderFreightAppendRecord;
using System.Collections.Generic;

namespace BCService.TMS.Order.Order
{
    /// <summary>
    /// 订单信息
    /// </summary>
    [NonInjection]
    public interface IOrderService
    {
        /// <summary>
        /// 计算运费
        /// </summary>
        /// <param name="userId">用户Id</param>
        /// <param name="requestDto">运费计算信息</param>
        List<OrderCostChecklistDto> CalculateShippingCost(long? userId, OrderShippingCostRequestDto requestDto);
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="requestDto">下单信息</param>
        /// <param name="userId">用户Id</param>
        /// <param name="transportOrderId">运输订单Id</param>
        /// <returns></returns>
        OrderDto Create(OrderBaseRequestDto requestDto, long userId, long? transportOrderId);

        /// <summary>
        /// 订单二次负重
        /// </summary>
        /// <param name="orderChangeWeightRequestDto"></param>
        /// <returns></returns>
        OrderFreightAppendRecordDto ChangeWeight(OrderChangeWeightRequestDto orderChangeWeightRequestDto);



    }
}
